/**
 * 编写一个 Node.js 脚本，读取指定目录下的所有文件和子目录的名称，并打印到控制台。
提示：使用 fs.readdir() 或 fs.readdirSync()。
 */

// 引入fs readline path 模块
import fs, { read } from 'fs';
import { stdin, stdout } from 'process';
import path from 'path';
import readline from 'readline';
import { dir } from 'console';

// 创建接口
var api = readline.createInterface({
    input: stdin,
    output: stdout
})

// 使用接口
api.question('请输入要查找的目录名称', input => {
    if (input.toLowerCase() === 'exit') {
        console.log('退出成功');
        api.close();
    } else {
        // 处理用户输入空格
        var handleUserInputSpace = input.trim();
        // 目录的路径
        var dirPath = `./${handleUserInputSpace}`
        // 读取目录下的所有文件
        fs.readdir(dirPath, (err, data) => {
            if (err) {
                console.log('没有该目录,请重试');
                return;
                api.close();
            } else {
                // 遍历目录下的所有文件
                data.forEach(ele => {
                    /**
                     * 这是第一种办法
                     */
                    // 获取文件扩展名
                    var fileExtName = path.extname(ele);
                    // // 判断是文件还是子目录(有扩展名的是文件,没有的是子目录)
                    if (fileExtName === '') {
                        console.log(ele + '是子目录');
                    } else if (fileExtName !== '') {
                        console.log(ele + '是文件');
                    }
                    /**
                     * 第二种办法
                     */
                    // 完整路径
                    var fullPath = `${dirPath}/${ele}`
                    // 通过文件状态来判断是文件还是子目录
                    fs.stat(fullPath, (err, stat) => {
                        if (err) {
                            console.log('该目录下没有东西,请重试');
                            return;
                        } else {
                            if (stat.isFile()) {
                                console.log(ele + '是文件');
                            } else if (stat.isDirectory()) {
                                console.log(ele + '是子目录');
                            }
                        }
                    })
                })
            }
        })


    }
})


